/* ==================================================================   
 * Created [2009-4-27 下午11:32:55] by Jon.King 
 * ==================================================================  
 * TSS 
 * ================================================================== 
 * mailTo:jinpujun@hotmail.com
 * Copyright (c) Jon.King, 2009-2012 
 * ================================================================== 
*/

package com.jinhe.tss.core.web.dispaly.xform;

import org.dom4j.Document;

import com.jinhe.tss.core.cachepool.CacheManager;
import com.jinhe.tss.core.cachepool.Cacheable;
import com.jinhe.tss.core.cachepool.IPool;
import com.jinhe.tss.core.cachepool.strategy.CacheConstants;
import com.jinhe.tss.core.util.EasyUtils;
import com.jinhe.tss.core.util.XMLDocUtil;

/**
 * XForm模板文件。
 */
public class XFormTemplet {

    // 模板缓存池
    private static IPool pool = CacheManager.getInstance().getCachePool(CacheConstants.XFORM_TEMPLATE_POOL);

    /**
     * XForm数据文件Docment对象
     */
    private Document doc = null;

    public XFormTemplet(String uri) {
        if ( EasyUtils.isNullOrEmpty(uri) ) {
            throw new RuntimeException("没有定义xform模板文件的路径！");
        }
        
        Cacheable obj = pool.getObject(uri);
        if (obj == null) {
            obj = pool.putObject(uri, XMLDocUtil.createDoc(uri));
        }
        doc = (Document) obj.getValue();
    }
 
    public Document getTemplet() {
        return (Document) doc.clone();
    }

}
